메타 프로그래밍 Elixir에서 구조체의 속성을 부분적으로 공통화 Elixir에서 구조체의 속성을 공통화하고 싶었기 때문에 메모도 함께 공유합니다. common_struct.ex my_struct.ex iexCommonStruct 에는 구조체가 정의되어 있지 않으므로 위 코드에서 %CommonStruct{} 를 실행하면 오류가 발생합니다. iex 공통 부분도 구조체로 하고 싶은 경우는, 아래와 같이 하면 할 수 있습니다. common_struct.ex ie... Elixir메타 프로그래밍 로그'메타프로그램 루비 버전 2'5장 읽기 본 장에서 클래스 매크로(수정 클래스의 방법)/반사 별명(코드로 포장하는 방법)/특이 클래스(단식 클래스) 클래스 정의에 모든 코드를 배치할 수 있습니다 클래스(또는 모듈) 정의에서 클래스는 현재 대상self 루비 프로그램에는 항상 현재 객체 self와 현재 클래스가 있습니다. 방법을 정의한 후 현재 클래스의 실례 방법 중 방법에서 현재 대상의 클래스가 현재 클래스로 바뀐다. 현재 객체 클래... Ruby메타 프로그래밍 로그'메타프로그램 루비 버전 2'4장 읽기 블록은'호출 대상'대가족의 일원 호출 방법에서만 블록을 정의할 수 있습니다. 메소드 내부에서 Kernel#blockgiven?사용 방법으로 블록 유무를 확인할 수 있음 블록을 정의한 경우 해당 점에 구속이 적용됩니다. 블록을 방법에 전달할 때 그 속박도 함께 가져간다 블록에서도 새 구속조건을 정의할 수 있습니다. 방법 두 범위를 한 장소로 밀어넣고 변수를 공유하는 마술 변수를 여러 방법으로 ... 독서 노트Ruby메타 프로그래밍 로그'메타프로그램 루비 버전 2'3장 읽기 동적 방법 Object#send 호출 방법은 약간 메모와 Object#send obj.send(:my_method, 3) Object#send를 사용하면 어떤 방법으로든 호출할 수 있습니다. privete 방법을 호출할 수 있기 때문에send 동적 분포 send 사용 방법, 호출할 방법명을 매개 변수로 결정하고 코드가 실행될 때 호출하는 방법 동적 정의 방법 Module#define_meth... 독서 노트Ruby메타 프로그래밍 Rails에서 메타 프로그래밍(블랙 매직)이라 불리는 send 방법을 활용해봤어요 내가 이 기사를 쓰려는 목적은 센스 방법을 활용하지 않은 인상을 가진 사람에게 Rails에서 이렇게 사용하는 장면이 있다는 것을 소개하기 위해서다. Rails 튜토리얼에서 실제로는 send 방법을 이용하여 메타 프로그램을 만들었는데 그걸 보면 더 인상적일 수 있어요. 예를 들어 upcase 문자열을 대문자로 출력하는 방법을 예로 들자. 이렇게 send 방법의 매개 변수를 호출하고자 하는 방법... 메타 프로그래밍RubyRails [Rails]STI(단일 테이블 상속) 및 메타 프로그래밍 DRY STI(단일 테이블 상속)와 메타프로그램 설계를 사용하여 DRY(중복 제외)를 시도해 봅니다. 사용자 페이지에서 등록 곡을 카테고리별로 나열할 수 있습니다(더 나아가 CRUD). 아무 생각 없이 하면 록/pops/jazz 각자의 모형, 보기, 컨트롤러에 user 테이블, 뮤직 테이블, genre 테이블만 준비되어 있습니다.user has_many genres through musics의ass... 메타 프로그래밍Rails
Elixir에서 구조체의 속성을 부분적으로 공통화 Elixir에서 구조체의 속성을 공통화하고 싶었기 때문에 메모도 함께 공유합니다. common_struct.ex my_struct.ex iexCommonStruct 에는 구조체가 정의되어 있지 않으므로 위 코드에서 %CommonStruct{} 를 실행하면 오류가 발생합니다. iex 공통 부분도 구조체로 하고 싶은 경우는, 아래와 같이 하면 할 수 있습니다. common_struct.ex ie... Elixir메타 프로그래밍 로그'메타프로그램 루비 버전 2'5장 읽기 본 장에서 클래스 매크로(수정 클래스의 방법)/반사 별명(코드로 포장하는 방법)/특이 클래스(단식 클래스) 클래스 정의에 모든 코드를 배치할 수 있습니다 클래스(또는 모듈) 정의에서 클래스는 현재 대상self 루비 프로그램에는 항상 현재 객체 self와 현재 클래스가 있습니다. 방법을 정의한 후 현재 클래스의 실례 방법 중 방법에서 현재 대상의 클래스가 현재 클래스로 바뀐다. 현재 객체 클래... Ruby메타 프로그래밍 로그'메타프로그램 루비 버전 2'4장 읽기 블록은'호출 대상'대가족의 일원 호출 방법에서만 블록을 정의할 수 있습니다. 메소드 내부에서 Kernel#blockgiven?사용 방법으로 블록 유무를 확인할 수 있음 블록을 정의한 경우 해당 점에 구속이 적용됩니다. 블록을 방법에 전달할 때 그 속박도 함께 가져간다 블록에서도 새 구속조건을 정의할 수 있습니다. 방법 두 범위를 한 장소로 밀어넣고 변수를 공유하는 마술 변수를 여러 방법으로 ... 독서 노트Ruby메타 프로그래밍 로그'메타프로그램 루비 버전 2'3장 읽기 동적 방법 Object#send 호출 방법은 약간 메모와 Object#send obj.send(:my_method, 3) Object#send를 사용하면 어떤 방법으로든 호출할 수 있습니다. privete 방법을 호출할 수 있기 때문에send 동적 분포 send 사용 방법, 호출할 방법명을 매개 변수로 결정하고 코드가 실행될 때 호출하는 방법 동적 정의 방법 Module#define_meth... 독서 노트Ruby메타 프로그래밍 Rails에서 메타 프로그래밍(블랙 매직)이라 불리는 send 방법을 활용해봤어요 내가 이 기사를 쓰려는 목적은 센스 방법을 활용하지 않은 인상을 가진 사람에게 Rails에서 이렇게 사용하는 장면이 있다는 것을 소개하기 위해서다. Rails 튜토리얼에서 실제로는 send 방법을 이용하여 메타 프로그램을 만들었는데 그걸 보면 더 인상적일 수 있어요. 예를 들어 upcase 문자열을 대문자로 출력하는 방법을 예로 들자. 이렇게 send 방법의 매개 변수를 호출하고자 하는 방법... 메타 프로그래밍RubyRails [Rails]STI(단일 테이블 상속) 및 메타 프로그래밍 DRY STI(단일 테이블 상속)와 메타프로그램 설계를 사용하여 DRY(중복 제외)를 시도해 봅니다. 사용자 페이지에서 등록 곡을 카테고리별로 나열할 수 있습니다(더 나아가 CRUD). 아무 생각 없이 하면 록/pops/jazz 각자의 모형, 보기, 컨트롤러에 user 테이블, 뮤직 테이블, genre 테이블만 준비되어 있습니다.user has_many genres through musics의ass... 메타 프로그래밍Rails